/******************************************************************************
 * Classe visée : classe de création et de gestion de la visée
 ******************************************************************************/
package ElementsDeJeu;

import java.awt.*;
import javax.swing.*;
import prjintwg.PnlJeu;

/**
 *
 * @author W&G
 */
public class Visee extends JComponent {

    private int posX;//Position en x de la visée
    private int posY;//Position en y de la visée
    private int vitesse;//Vitesse du projectile
    private double angle;//Angle du projectile
    private PnlJeu pnlJeu;//Panneau du jeu
    private int tour = 0;//Tour des joueurs

    /**
     * Constructeur de la visée
     * @param pnlJeu panneau du jeu
     */
    public Visee(PnlJeu pnlJeu) {
        this.pnlJeu = pnlJeu;
    }
/**
 * Définit la position de la visée
 * @param posX position en x de la visée
 * @param posY position en y de la visée
 * @param tour tour des joueurs
 */
    public void setPosition(int posX, int posY, int tour) {
        this.posX = posX;
        this.posY = posY;
        this.tour = tour;
    }

    @Override
    public void paintComponent(Graphics g) {//Dessine la visée
        Polygon poly = new Polygon();
        this.vitesse = pnlJeu.getSldVitesse().getValue();
        this.angle = Math.PI / 180 * pnlJeu.getSldAngle().getValue();
        g.setColor(Color.YELLOW);
        poly.addPoint(posX + 5, pnlJeu.getF().getHeight() - posY + 5);
        if (tour % 2 == 1) {
            poly.addPoint((int) (posX + vitesse * Math.cos(angle + 0.07)) + 5, (int) (pnlJeu.getF().getHeight() - posY - vitesse * Math.sin(angle + 0.07) + 5));
            poly.addPoint((int) (posX + vitesse * Math.cos(angle - 0.07)) + 5, (int) (pnlJeu.getF().getHeight() - posY - vitesse * Math.sin(angle - 0.07) + 5));
        } else {
            poly.addPoint((int) (posX - vitesse * Math.cos(angle + 0.07)) + 5, (int) (pnlJeu.getF().getHeight() - posY - vitesse * Math.sin(angle + 0.07) + 5));
            poly.addPoint((int) (posX - vitesse * Math.cos(angle - 0.07)) + 5, (int) (pnlJeu.getF().getHeight() - posY - vitesse * Math.sin(angle - 0.07) + 5));
        }
        g.fillPolygon(poly);
    }
}
